import axios from 'axios';

import router from '../router';

// 创建一个 Axios 实例
const instance = axios.create({
  baseURL: 'http://localhost:8080/', // 设置统一的请求前缀
  timeout: 10000, // 设置超时时间
  headers: {
    'Content-Type': 'application/json', // 设置请求头为 JSON
    // 可以添加其他默认的请求头
  }
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 在请求发送之前做些什么，例如添加 token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers['satoken'] = `${token}`;
    }
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    console.log("响应拦截", response);
    // 假设服务端返回的数据格式中有 code 字段表示状态码
    const { code } = response.data;
    if (code === 401 || code===500) {
      // 处理未授权的情况，例如跳转到登录页
      // 在 Vue Router 中可以使用 this.$router.push('/login') 进行路由跳转
      // console.error('未授权：', message);
      // 示例：跳转到登录页
      console.log("拦截")
      router.push('/login');
      // return Promise.reject(response);
    }
    return response.data; // 返回响应数据
  },
  error => {
    // 对响应错误做点什么
    // console.error('响应错误：', error);
    return Promise.reject(error); // 返回错误信息，继续抛出
  }
);

export default instance;
